//
// Created by 王书哲 on 25-3-19.
// 数据被存储在何处

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int static_store = 30;
const char * pcg = "String Literal";
int main (void)
{
    //自动类型占据一个区域
    int auto_store = 40;
    char auto_string [] = "Auto char array";
    //动态分配的数据占一个区域，通常称为（内存堆或自由内存）
    int * pi;
    int * pcl;
    pi = (int *) malloc(sizeof (int));
    *pi = 35;
    pcl = (char *) malloc(strlen("Dynamic String") + 1);
    strcpy(pcl, "Dynamic String");
    printf("static_store: %d at %p\n", static_store, &static_store);
    printf(("auto_store: %d at %p\n"), auto_store, &auto_store);
    printf("*pi: %d at %p\n", *pi, pi);
    printf("%s at %p\n", auto_string, auto_string);
    printf("%s at %p\n", pcl, pcl);
    printf("%s at %p\n", "Quoted String", "Quoted String");//静态数据包括(字符常量)占用一个区域
    free(pi);
    free(pcl);
    return 0;
}